package com.ai.service.networking;

import com.ai.common.CommonResponse;
import com.ai.entity.comm.SysNetty;
import com.ai.model.vo.SysNettyLinkVo;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
 * <p>
 * 服务类
 * </p>
 *
 * @author chen
 * @since 2023-04-03 21:17:12
 */
public interface ISysNettyService extends IService<SysNetty> {

    /**
     * 根据IP和端口号获取netty
     *
     * @param ip
     * @param port
     * @return
     */
    SysNetty getByIP(String ip, int port);

    /**
     * 根据code获取netty
     *
     * @param code
     * @return
     */
    SysNetty getByteCode(String code);

    /**
     * 获取本机的所有服务端
     */
    List<SysNetty> getNativeServerList();

    /**
     * 获取本机的所有客户端
     */
    List<SysNetty> getNativeClientLIst();


    /**
     * 获取本机的所有自启动的服务端
     */
    List<SysNetty> getNativeStartServerList();

    /**
     * 获取本机的素有自启动的客户端
     */
    List<SysNetty> getNativeStartClientList();


    /**
     * 获取非本机的所有服务端
     */
    List<SysNetty> getNonNativeServerList();

    /**
     * 获取非本机的所有客户端
     */
    List<SysNetty> getNonNativeClientLIst();

    /**
     * 新增监听链路
     * @param nettyLinkVo
     * @return
     */
    CommonResponse addNewComLink(SysNettyLinkVo nettyLinkVo);
}
